home *** CD-ROM | disk | FTP | other *** search
/ LG Super CD / LG Super CD.iso / bitpim / bitpim-0.62-setup.exe / {app} / bitpim.exe / locale.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2003-11-06  |  17.2 KB  |  642 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.3)
  3.  
  4. import sys
  5. __all__ = [
  6.     'setlocale',
  7.     'Error',
  8.     'localeconv',
  9.     'strcoll',
  10.     'strxfrm',
  11.     'format',
  12.     'str',
  13.     'atof',
  14.     'atoi',
  15.     'LC_CTYPE',
  16.     'LC_COLLATE',
  17.     'LC_TIME',
  18.     'LC_MONETARY',
  19.     'LC_NUMERIC',
  20.     'LC_ALL',
  21.     'CHAR_MAX']
  22.  
  23. try:
  24.     from _locale import *
  25. except ImportError:
  26.     CHAR_MAX = 127
  27.     LC_ALL = 6
  28.     LC_COLLATE = 3
  29.     LC_CTYPE = 0
  30.     LC_MESSAGES = 5
  31.     LC_MONETARY = 4
  32.     LC_NUMERIC = 1
  33.     LC_TIME = 2
  34.     Error = ValueError
  35.     
  36.     def localeconv():
  37.         return {
  38.             'grouping': [
  39.                 127],
  40.             'currency_symbol': '',
  41.             'n_sign_posn': 127,
  42.             'p_cs_precedes': 127,
  43.             'n_cs_precedes': 127,
  44.             'mon_grouping': [],
  45.             'n_sep_by_space': 127,
  46.             'decimal_point': '.',
  47.             'negative_sign': '',
  48.             'positive_sign': '',
  49.             'p_sep_by_space': 127,
  50.             'int_curr_symbol': '',
  51.             'p_sign_posn': 127,
  52.             'thousands_sep': '',
  53.             'mon_thousands_sep': '',
  54.             'frac_digits': 127,
  55.             'mon_decimal_point': '',
  56.             'int_frac_digits': 127 }
  57.  
  58.     
  59.     def setlocale(category, value = None):
  60.         if value not in (None, '', 'C'):
  61.             raise Error, '_locale emulation only supports "C" locale'
  62.         
  63.         return 'C'
  64.  
  65.     
  66.     def strcoll(a, b):
  67.         return cmp(a, b)
  68.  
  69.     
  70.     def strxfrm(s):
  71.         return s
  72.  
  73.  
  74.  
  75. def _group(s):
  76.     conv = localeconv()
  77.     grouping = conv['grouping']
  78.     if not grouping:
  79.         return (s, 0)
  80.     
  81.     result = ''
  82.     seps = 0
  83.     spaces = ''
  84.     if s[-1] == ' ':
  85.         sp = s.find(' ')
  86.         spaces = s[sp:]
  87.         s = s[:sp]
  88.     
  89.     while s and grouping:
  90.         if grouping[0] == CHAR_MAX:
  91.             break
  92.         elif grouping[0] != 0:
  93.             group = grouping[0]
  94.             grouping = grouping[1:]
  95.         
  96.         if result:
  97.             result = s[-group:] + conv['thousands_sep'] + result
  98.             seps += 1
  99.         else:
  100.             result = s[-group:]
  101.         s = s[:-group]
  102.         if s and s[-1] not in '0123456789':
  103.             return (s + result + spaces, seps)
  104.             continue
  105.     if not result:
  106.         return (s + spaces, seps)
  107.     
  108.     if s:
  109.         result = s + conv['thousands_sep'] + result
  110.         seps += 1
  111.     
  112.     return (result + spaces, seps)
  113.  
  114.  
  115. def format(f, val, grouping = 0):
  116.     result = f % val
  117.     fields = result.split('.')
  118.     seps = 0
  119.     if grouping:
  120.         (fields[0], seps) = _group(fields[0])
  121.     
  122.     if len(fields) == 2:
  123.         result = fields[0] + localeconv()['decimal_point'] + fields[1]
  124.     elif len(fields) == 1:
  125.         result = fields[0]
  126.     else:
  127.         raise Error, 'Too many decimal points in result string'
  128.     while seps:
  129.         sp = result.find(' ')
  130.         if sp == -1:
  131.             break
  132.         
  133.         result = result[:sp] + result[sp + 1:]
  134.         seps -= 1
  135.     return result
  136.  
  137.  
  138. def str(val):
  139.     return format('%.12g', val)
  140.  
  141.  
  142. def atof(str, func = float):
  143.     ts = localeconv()['thousands_sep']
  144.     if ts:
  145.         s = str.split(ts)
  146.         str = ''.join(s)
  147.     
  148.     dd = localeconv()['decimal_point']
  149.     if dd:
  150.         s = str.split(dd)
  151.         str = '.'.join(s)
  152.     
  153.     return func(str)
  154.  
  155.  
  156. def atoi(str):
  157.     return atof(str, int)
  158.  
  159.  
  160. def _test():
  161.     setlocale(LC_ALL, '')
  162.     s1 = format('%d', 123456789, 1)
  163.     print s1, 'is', atoi(s1)
  164.     s1 = str(3.1400000000000001)
  165.     print s1, 'is', atof(s1)
  166.  
  167. _setlocale = setlocale
  168.  
  169. def normalize(localename):
  170.     fullname = localename.lower()
  171.     if ':' in fullname:
  172.         fullname = fullname.replace(':', '.')
  173.     
  174.     if '.' in fullname:
  175.         (langname, encoding) = fullname.split('.')[:2]
  176.         fullname = langname + '.' + encoding
  177.     else:
  178.         langname = fullname
  179.         encoding = ''
  180.     code = locale_alias.get(fullname, None)
  181.     if code is not None:
  182.         return code
  183.     
  184.     code = locale_alias.get(langname, None)
  185.     if code is not None:
  186.         if '.' in code:
  187.             (langname, defenc) = code.split('.')
  188.         else:
  189.             langname = code
  190.             defenc = ''
  191.         if encoding:
  192.             encoding = encoding_alias.get(encoding, encoding)
  193.         else:
  194.             encoding = defenc
  195.         if encoding:
  196.             return langname + '.' + encoding
  197.         else:
  198.             return langname
  199.     else:
  200.         return localename
  201.  
  202.  
  203. def _parse_localename(localename):
  204.     code = normalize(localename)
  205.     if '@' in localename:
  206.         (code, modifier) = code.split('@')
  207.         if modifier == 'euro' and '.' not in code:
  208.             return (code, 'iso-8859-15')
  209.         
  210.     
  211.     if '.' in code:
  212.         return code.split('.')[:2]
  213.     elif code == 'C':
  214.         return (None, None)
  215.     
  216.     raise ValueError, 'unknown locale: %s' % localename
  217.  
  218.  
  219. def _build_localename(localetuple):
  220.     (language, encoding) = localetuple
  221.     if language is None:
  222.         language = 'C'
  223.     
  224.     if encoding is None:
  225.         return language
  226.     else:
  227.         return language + '.' + encoding
  228.  
  229.  
  230. def getdefaultlocale(envvars = ('LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LANG')):
  231.     
  232.     try:
  233.         import _locale
  234.         (code, encoding) = _locale._getdefaultlocale()
  235.     except (ImportError, AttributeError):
  236.         pass
  237.  
  238.     if sys.platform == 'win32' and code and code[:2] == '0x':
  239.         code = windows_locale.get(int(code, 0))
  240.     
  241.     return (code, encoding)
  242.     import os
  243.     lookup = os.environ.get
  244.     for variable in envvars:
  245.         localename = lookup(variable, None)
  246.         if localename is not None:
  247.             break
  248.             continue
  249.     else:
  250.         localename = 'C'
  251.     return _parse_localename(localename)
  252.  
  253.  
  254. def getlocale(category = LC_CTYPE):
  255.     localename = _setlocale(category)
  256.     if category == LC_ALL and ';' in localename:
  257.         raise TypeError, 'category LC_ALL is not supported'
  258.     
  259.     return _parse_localename(localename)
  260.  
  261.  
  262. def setlocale(category, locale = None):
  263.     if locale and type(locale) is not type(''):
  264.         locale = normalize(_build_localename(locale))
  265.     
  266.     return _setlocale(category, locale)
  267.  
  268.  
  269. def resetlocale(category = LC_ALL):
  270.     _setlocale(category, _build_localename(getdefaultlocale()))
  271.  
  272. if sys.platform in ('win32', 'darwin', 'mac'):
  273.     
  274.     def getpreferredencoding(do_setlocale = True):
  275.         import _locale
  276.         return _locale._getdefaultlocale()[1]
  277.  
  278. else:
  279.     
  280.     try:
  281.         CODESET
  282.     except NameError:
  283.         
  284.         def getpreferredencoding(do_setlocale = True):
  285.             return getdefaultlocale()[1]
  286.  
  287.  
  288.     
  289.     def getpreferredencoding(do_setlocale = True):
  290.         if do_setlocale:
  291.             oldloc = setlocale(LC_CTYPE)
  292.             setlocale(LC_CTYPE, '')
  293.             result = nl_langinfo(CODESET)
  294.             setlocale(LC_CTYPE, oldloc)
  295.             return result
  296.         else:
  297.             return nl_langinfo(CODESET)
  298.  
  299. encoding_alias = {
  300.     '437': 'C',
  301.     'c': 'C',
  302.     'iso8859': 'ISO8859-1',
  303.     '8859': 'ISO8859-1',
  304.     '88591': 'ISO8859-1',
  305.     'ascii': 'ISO8859-1',
  306.     'en': 'ISO8859-1',
  307.     'iso88591': 'ISO8859-1',
  308.     'iso_8859-1': 'ISO8859-1',
  309.     '885915': 'ISO8859-15',
  310.     'iso885915': 'ISO8859-15',
  311.     'iso_8859-15': 'ISO8859-15',
  312.     'iso8859-2': 'ISO8859-2',
  313.     'iso88592': 'ISO8859-2',
  314.     'iso_8859-2': 'ISO8859-2',
  315.     'iso88595': 'ISO8859-5',
  316.     'iso88596': 'ISO8859-6',
  317.     'iso88597': 'ISO8859-7',
  318.     'iso88598': 'ISO8859-8',
  319.     'iso88599': 'ISO8859-9',
  320.     'iso-2022-jp': 'JIS7',
  321.     'jis': 'JIS7',
  322.     'jis7': 'JIS7',
  323.     'sjis': 'SJIS',
  324.     'tis620': 'TACTIS',
  325.     'ajec': 'eucJP',
  326.     'eucjp': 'eucJP',
  327.     'ujis': 'eucJP',
  328.     'utf-8': 'utf',
  329.     'utf8': 'utf',
  330.     'utf8@ucs4': 'utf' }
  331. locale_alias = {
  332.     'american': 'en_US.ISO8859-1',
  333.     'ar': 'ar_AA.ISO8859-6',
  334.     'ar_aa': 'ar_AA.ISO8859-6',
  335.     'ar_sa': 'ar_SA.ISO8859-6',
  336.     'arabic': 'ar_AA.ISO8859-6',
  337.     'bg': 'bg_BG.ISO8859-5',
  338.     'bg_bg': 'bg_BG.ISO8859-5',
  339.     'bulgarian': 'bg_BG.ISO8859-5',
  340.     'c-french': 'fr_CA.ISO8859-1',
  341.     'c': 'C',
  342.     'c_c': 'C',
  343.     'cextend': 'en_US.ISO8859-1',
  344.     'chinese-s': 'zh_CN.eucCN',
  345.     'chinese-t': 'zh_TW.eucTW',
  346.     'croatian': 'hr_HR.ISO8859-2',
  347.     'cs': 'cs_CZ.ISO8859-2',
  348.     'cs_cs': 'cs_CZ.ISO8859-2',
  349.     'cs_cz': 'cs_CZ.ISO8859-2',
  350.     'cz': 'cz_CZ.ISO8859-2',
  351.     'cz_cz': 'cz_CZ.ISO8859-2',
  352.     'czech': 'cs_CS.ISO8859-2',
  353.     'da': 'da_DK.ISO8859-1',
  354.     'da_dk': 'da_DK.ISO8859-1',
  355.     'danish': 'da_DK.ISO8859-1',
  356.     'de': 'de_DE.ISO8859-1',
  357.     'de_at': 'de_AT.ISO8859-1',
  358.     'de_ch': 'de_CH.ISO8859-1',
  359.     'de_de': 'de_DE.ISO8859-1',
  360.     'dutch': 'nl_BE.ISO8859-1',
  361.     'ee': 'ee_EE.ISO8859-4',
  362.     'el': 'el_GR.ISO8859-7',
  363.     'el_gr': 'el_GR.ISO8859-7',
  364.     'en': 'en_US.ISO8859-1',
  365.     'en_au': 'en_AU.ISO8859-1',
  366.     'en_ca': 'en_CA.ISO8859-1',
  367.     'en_gb': 'en_GB.ISO8859-1',
  368.     'en_ie': 'en_IE.ISO8859-1',
  369.     'en_nz': 'en_NZ.ISO8859-1',
  370.     'en_uk': 'en_GB.ISO8859-1',
  371.     'en_us': 'en_US.ISO8859-1',
  372.     'eng_gb': 'en_GB.ISO8859-1',
  373.     'english': 'en_EN.ISO8859-1',
  374.     'english_uk': 'en_GB.ISO8859-1',
  375.     'english_united-states': 'en_US.ISO8859-1',
  376.     'english_us': 'en_US.ISO8859-1',
  377.     'es': 'es_ES.ISO8859-1',
  378.     'es_ar': 'es_AR.ISO8859-1',
  379.     'es_bo': 'es_BO.ISO8859-1',
  380.     'es_cl': 'es_CL.ISO8859-1',
  381.     'es_co': 'es_CO.ISO8859-1',
  382.     'es_cr': 'es_CR.ISO8859-1',
  383.     'es_ec': 'es_EC.ISO8859-1',
  384.     'es_es': 'es_ES.ISO8859-1',
  385.     'es_gt': 'es_GT.ISO8859-1',
  386.     'es_mx': 'es_MX.ISO8859-1',
  387.     'es_ni': 'es_NI.ISO8859-1',
  388.     'es_pa': 'es_PA.ISO8859-1',
  389.     'es_pe': 'es_PE.ISO8859-1',
  390.     'es_py': 'es_PY.ISO8859-1',
  391.     'es_sv': 'es_SV.ISO8859-1',
  392.     'es_uy': 'es_UY.ISO8859-1',
  393.     'es_ve': 'es_VE.ISO8859-1',
  394.     'et': 'et_EE.ISO8859-4',
  395.     'et_ee': 'et_EE.ISO8859-4',
  396.     'fi': 'fi_FI.ISO8859-1',
  397.     'fi_fi': 'fi_FI.ISO8859-1',
  398.     'finnish': 'fi_FI.ISO8859-1',
  399.     'fr': 'fr_FR.ISO8859-1',
  400.     'fr_be': 'fr_BE.ISO8859-1',
  401.     'fr_ca': 'fr_CA.ISO8859-1',
  402.     'fr_ch': 'fr_CH.ISO8859-1',
  403.     'fr_fr': 'fr_FR.ISO8859-1',
  404.     'fre_fr': 'fr_FR.ISO8859-1',
  405.     'french': 'fr_FR.ISO8859-1',
  406.     'french_france': 'fr_FR.ISO8859-1',
  407.     'ger_de': 'de_DE.ISO8859-1',
  408.     'german': 'de_DE.ISO8859-1',
  409.     'german_germany': 'de_DE.ISO8859-1',
  410.     'greek': 'el_GR.ISO8859-7',
  411.     'hebrew': 'iw_IL.ISO8859-8',
  412.     'hr': 'hr_HR.ISO8859-2',
  413.     'hr_hr': 'hr_HR.ISO8859-2',
  414.     'hu': 'hu_HU.ISO8859-2',
  415.     'hu_hu': 'hu_HU.ISO8859-2',
  416.     'hungarian': 'hu_HU.ISO8859-2',
  417.     'icelandic': 'is_IS.ISO8859-1',
  418.     'id': 'id_ID.ISO8859-1',
  419.     'id_id': 'id_ID.ISO8859-1',
  420.     'is': 'is_IS.ISO8859-1',
  421.     'is_is': 'is_IS.ISO8859-1',
  422.     'iso-8859-1': 'en_US.ISO8859-1',
  423.     'iso-8859-15': 'en_US.ISO8859-15',
  424.     'iso8859-1': 'en_US.ISO8859-1',
  425.     'iso8859-15': 'en_US.ISO8859-15',
  426.     'iso_8859_1': 'en_US.ISO8859-1',
  427.     'iso_8859_15': 'en_US.ISO8859-15',
  428.     'it': 'it_IT.ISO8859-1',
  429.     'it_ch': 'it_CH.ISO8859-1',
  430.     'it_it': 'it_IT.ISO8859-1',
  431.     'italian': 'it_IT.ISO8859-1',
  432.     'iw': 'iw_IL.ISO8859-8',
  433.     'iw_il': 'iw_IL.ISO8859-8',
  434.     'ja': 'ja_JP.eucJP',
  435.     'ja.jis': 'ja_JP.JIS7',
  436.     'ja.sjis': 'ja_JP.SJIS',
  437.     'ja_jp': 'ja_JP.eucJP',
  438.     'ja_jp.ajec': 'ja_JP.eucJP',
  439.     'ja_jp.euc': 'ja_JP.eucJP',
  440.     'ja_jp.eucjp': 'ja_JP.eucJP',
  441.     'ja_jp.iso-2022-jp': 'ja_JP.JIS7',
  442.     'ja_jp.jis': 'ja_JP.JIS7',
  443.     'ja_jp.jis7': 'ja_JP.JIS7',
  444.     'ja_jp.mscode': 'ja_JP.SJIS',
  445.     'ja_jp.sjis': 'ja_JP.SJIS',
  446.     'ja_jp.ujis': 'ja_JP.eucJP',
  447.     'japan': 'ja_JP.eucJP',
  448.     'japanese': 'ja_JP.SJIS',
  449.     'japanese-euc': 'ja_JP.eucJP',
  450.     'japanese.euc': 'ja_JP.eucJP',
  451.     'jp_jp': 'ja_JP.eucJP',
  452.     'ko': 'ko_KR.eucKR',
  453.     'ko_kr': 'ko_KR.eucKR',
  454.     'ko_kr.euc': 'ko_KR.eucKR',
  455.     'korean': 'ko_KR.eucKR',
  456.     'lt': 'lt_LT.ISO8859-4',
  457.     'lv': 'lv_LV.ISO8859-4',
  458.     'mk': 'mk_MK.ISO8859-5',
  459.     'mk_mk': 'mk_MK.ISO8859-5',
  460.     'nl': 'nl_NL.ISO8859-1',
  461.     'nl_be': 'nl_BE.ISO8859-1',
  462.     'nl_nl': 'nl_NL.ISO8859-1',
  463.     'no': 'no_NO.ISO8859-1',
  464.     'no_no': 'no_NO.ISO8859-1',
  465.     'norwegian': 'no_NO.ISO8859-1',
  466.     'pl': 'pl_PL.ISO8859-2',
  467.     'pl_pl': 'pl_PL.ISO8859-2',
  468.     'polish': 'pl_PL.ISO8859-2',
  469.     'portuguese': 'pt_PT.ISO8859-1',
  470.     'portuguese_brazil': 'pt_BR.ISO8859-1',
  471.     'posix': 'C',
  472.     'posix-utf2': 'C',
  473.     'pt': 'pt_PT.ISO8859-1',
  474.     'pt_br': 'pt_BR.ISO8859-1',
  475.     'pt_pt': 'pt_PT.ISO8859-1',
  476.     'ro': 'ro_RO.ISO8859-2',
  477.     'ro_ro': 'ro_RO.ISO8859-2',
  478.     'ru': 'ru_RU.ISO8859-5',
  479.     'ru_ru': 'ru_RU.ISO8859-5',
  480.     'rumanian': 'ro_RO.ISO8859-2',
  481.     'russian': 'ru_RU.ISO8859-5',
  482.     'serbocroatian': 'sh_YU.ISO8859-2',
  483.     'sh': 'sh_YU.ISO8859-2',
  484.     'sh_hr': 'sh_HR.ISO8859-2',
  485.     'sh_sp': 'sh_YU.ISO8859-2',
  486.     'sh_yu': 'sh_YU.ISO8859-2',
  487.     'sk': 'sk_SK.ISO8859-2',
  488.     'sk_sk': 'sk_SK.ISO8859-2',
  489.     'sl': 'sl_CS.ISO8859-2',
  490.     'sl_cs': 'sl_CS.ISO8859-2',
  491.     'sl_si': 'sl_SI.ISO8859-2',
  492.     'slovak': 'sk_SK.ISO8859-2',
  493.     'slovene': 'sl_CS.ISO8859-2',
  494.     'sp': 'sp_YU.ISO8859-5',
  495.     'sp_yu': 'sp_YU.ISO8859-5',
  496.     'spanish': 'es_ES.ISO8859-1',
  497.     'spanish_spain': 'es_ES.ISO8859-1',
  498.     'sr_sp': 'sr_SP.ISO8859-2',
  499.     'sv': 'sv_SE.ISO8859-1',
  500.     'sv_se': 'sv_SE.ISO8859-1',
  501.     'swedish': 'sv_SE.ISO8859-1',
  502.     'th_th': 'th_TH.TACTIS',
  503.     'tr': 'tr_TR.ISO8859-9',
  504.     'tr_tr': 'tr_TR.ISO8859-9',
  505.     'turkish': 'tr_TR.ISO8859-9',
  506.     'univ': 'en_US.utf',
  507.     'universal': 'en_US.utf',
  508.     'zh': 'zh_CN.eucCN',
  509.     'zh_cn': 'zh_CN.eucCN',
  510.     'zh_cn.big5': 'zh_TW.eucTW',
  511.     'zh_cn.euc': 'zh_CN.eucCN',
  512.     'zh_tw': 'zh_TW.eucTW',
  513.     'zh_tw.euc': 'zh_TW.eucTW' }
  514. windows_locale = {
  515.     1028: 'zh_TW',
  516.     2052: 'zh_CN',
  517.     1030: 'da_DK',
  518.     1043: 'nl_NL',
  519.     1033: 'en_US',
  520.     2057: 'en_UK',
  521.     3081: 'en_AU',
  522.     4105: 'en_CA',
  523.     5129: 'en_NZ',
  524.     6153: 'en_IE',
  525.     7177: 'en_ZA',
  526.     1035: 'fi_FI',
  527.     1036: 'fr_FR',
  528.     2060: 'fr_BE',
  529.     3084: 'fr_CA',
  530.     4108: 'fr_CH',
  531.     1031: 'de_DE',
  532.     1032: 'el_GR',
  533.     1037: 'iw_IL',
  534.     1039: 'is_IS',
  535.     1040: 'it_IT',
  536.     1041: 'ja_JA',
  537.     1044: 'no_NO',
  538.     2070: 'pt_PT',
  539.     3082: 'es_ES',
  540.     1089: 'sw_KE',
  541.     1053: 'sv_SE',
  542.     2077: 'sv_FI',
  543.     1055: 'tr_TR' }
  544.  
  545. def _print_locale():
  546.     categories = { }
  547.     
  548.     def _init_categories(categories = categories):
  549.         for k, v in globals().items():
  550.             if k[:3] == 'LC_':
  551.                 categories[k] = v
  552.                 continue
  553.         
  554.  
  555.     _init_categories()
  556.     del categories['LC_ALL']
  557.     print 'Locale defaults as determined by getdefaultlocale():'
  558.     print '-' * 72
  559.     (lang, enc) = getdefaultlocale()
  560.     print 'Language: ',
  561.     if not lang:
  562.         pass
  563.     print '(undefined)'
  564.     print 'Encoding: ',
  565.     if not enc:
  566.         pass
  567.     print '(undefined)'
  568.     print 
  569.     print 'Locale settings on startup:'
  570.     print '-' * 72
  571.     for name, category in categories.items():
  572.         print name, '...'
  573.         (lang, enc) = getlocale(category)
  574.         print '   Language: ',
  575.         if not lang:
  576.             pass
  577.         print '(undefined)'
  578.         print '   Encoding: ',
  579.         if not enc:
  580.             pass
  581.         print '(undefined)'
  582.         print 
  583.     
  584.     print 
  585.     print 'Locale settings after calling resetlocale():'
  586.     print '-' * 72
  587.     resetlocale()
  588.     for name, category in categories.items():
  589.         print name, '...'
  590.         (lang, enc) = getlocale(category)
  591.         print '   Language: ',
  592.         if not lang:
  593.             pass
  594.         print '(undefined)'
  595.         print '   Encoding: ',
  596.         if not enc:
  597.             pass
  598.         print '(undefined)'
  599.         print 
  600.     
  601.     
  602.     try:
  603.         setlocale(LC_ALL, '')
  604.     except:
  605.         print 'NOTE:'
  606.         print 'setlocale(LC_ALL, "") does not support the default locale'
  607.         print 'given in the OS environment variables.'
  608.  
  609.     print 
  610.     print 'Locale settings after calling setlocale(LC_ALL, ""):'
  611.     print '-' * 72
  612.     for name, category in categories.items():
  613.         print name, '...'
  614.         (lang, enc) = getlocale(category)
  615.         print '   Language: ',
  616.         if not lang:
  617.             pass
  618.         print '(undefined)'
  619.         print '   Encoding: ',
  620.         if not enc:
  621.             pass
  622.         print '(undefined)'
  623.         print 
  624.     
  625.  
  626.  
  627. try:
  628.     LC_MESSAGES
  629. except NameError:
  630.     pass
  631.  
  632. __all__.append('LC_MESSAGES')
  633. if __name__ == '__main__':
  634.     print 'Locale aliasing:'
  635.     print 
  636.     _print_locale()
  637.     print 
  638.     print 'Number formatting:'
  639.     print 
  640.     _test()
  641.  
  642.